SQL Server - Módulo de Acesso ao ACCESS Server via Windows Forms
Imports System.Data.OleDb 'acesso ao access
''' <summary>
''' Para acessar os objetos ADODB precisa Projeto, Adicionar Referencia, Assemblies, Extensions, ADODB
''' </summary>
Module Access
Dim constr As String = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=pasta\arquivo.mdb"
Public Function PreecheDDLComboBox() As Boolean
Dim sql As String
Dim cmd As OleDbCommand
Dim conn As New OleDbConnection(constr)
Dim a As String 'text do dropDownList
Dim b As String 'value do dropDownList
Dim cbb As New ComboBox 'no aspx é dropdownlist
'lblmsg.Text = ""
'If Not IsPostBack Then
sql = "SELECT T1,N1 FROM COLABORADORES" 't1=nome, n1=FIXO-RM-ID
cmd = New OleDbCommand(sql, conn)
Try
'colaboradores
cbb.Items.Clear()
'ddlColaboradores.Items.Add(New ListItem("", ""))
cbb.Items.Add("")
conn.Open()
Dim read As OleDbDataReader = cmd.ExecuteReader()
If read.HasRows Then
While read.Read()
a = read.Item("T1").ToString
b = read.Item("N1").ToString
'ddlColaboradores.Items.Add(New ListItem(a, b))
cbb.Items.Add(a + vbTab + b)
End While
End If
read.Close()
Return True
Catch ex As Exception
'lblmsg.Text = ex.Message
Return False
Finally
conn.Close()
End Try
End Function
''' <summary>
''' Executa uma ou mais queries
''' As queries podem ser agrupadas em um único string separadas por CRLF
''' </summary>
''' <param name="Querie"></param>
''' <returns></returns>
'''
Public Function ExecutarQuerie(Querie As String) As Boolean 'btnExecutar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExecutar.Click
Dim Comando As New OleDbCommand
Dim ConexaoBD As New OleDbConnection
Dim SenhaBD As String = ""
Dim Sql As String
'Dim constr As String = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Colegio Santa Isabel\BD Site1 2014\" + lstBD.Text + ".mdb"
Dim constr As String = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=e:\pastalstBD.mdb"
Dim a As Integer
Dim queries() As String
'btnExecutar.Enabled = False
queries = Split(Querie, vbCrLf)
ConexaoBD = New OleDbConnection(constr)
ConexaoBD.Open()
Try
For a = 0 To UBound(queries)
'txtandamento.Text = CStr(a)
Sql = queries(a)
If Sql <> "" Then
Comando = New OleDbCommand(Sql, ConexaoBD) 'Passando a SQL e a conexão
'Comando.Parameters.AddWithValue("@Nome", "Teste")
Comando.ExecuteNonQuery()
Comando.Dispose()
End If
Next
Catch ex As Exception
'lblmsg.Text = ex.Message + vbCrLf + queries(a)
Return False
End Try
'lblmsg.Text = "FIM"
'btnExecutar.Enabled = True
Return True
End Function
''' <summary>
''' Executa um SQL que retorna dados num Datagrid
''' </summary>
''' <param name="Querie"></param>
''' <param name="tabela"></param>
''' <returns>um datagrid</returns>
''' Exemplo : Querie = "Select * from Clientes" e tabela = Clientes
Public Function ExecutaSQL(Querie As String, tabela As String) As DataGrid
Dim strcon As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Meus Docs DeskTop\Visual Studio 2010\Projects\129-AcessoAccess\AcessoAccess.mdb;"
Dim Con As New OleDb.OleDbConnection(strcon)
Dim sql As String = Querie
Dim da As New OleDb.OleDbDataAdapter(sql, Con)
Dim ds As New DataSet
Dim dg As New DataGrid
da.Fill(ds, tabela) 'como desejo chamar a tabela
dg.DataSource = ds.Tables(tabela) 'qual tabela desejo do dataset
dg.Refresh()
Application.DoEvents()
Con.Close()
da.Dispose()
ds.Dispose()
Return dg
End Function
'#############################################################################################################
'# as funçãoes abaixo mencionadas executam todas as funcionalidades de acesso as bases de dados ACCESS
'#############################################################################################################
''' <summary>
''' Para acessar os objetos ADODB precisa Projeto, Adicionar Referencia, Assemblies, Extensions, ADODB
''' </summary>
Public BDCon As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Ref_Tec_Visual_Studio_2010\RefTecVS2010.mdb;Jet OLEDB:Database Password=Presidencialismo;" ' String de conexão com banco de dados
Public bd As ADODB.Connection ' banco de dados
Public rs As ADODB.Recordset ' conjunto de registros retornados de uma tabela do banco de dados
Public sql As String ' pesquisa a ser feita no banco de dados
Public erro As String
Public Function BDretornaDataSet(ByVal query As String) As DataSet
'NÃO utilizar com o DataGridView
erro = ""
Try
Dim ds As New DataSet
Dim Conexao As New OleDb.OleDbConnection(BDCon)
Dim dataadp As New OleDb.OleDbDataAdapter(query, BDCon)
dataadp.Fill(ds)
Conexao.Close()
Return ds
' dataadp.Dispose()
Catch ex As Exception
erro = ex.Message
Return Nothing
End Try
End Function
Public Function BDretornaDataAdapter(ByVal query As String) As OleDb.OleDbDataAdapter
'testado ok
'não usar como fonte do DataGRidView
erro = ""
Try
Dim datatb As New DataTable
Dim Conexao As New OleDb.OleDbConnection(BDCon)
Dim dataadp As New OleDb.OleDbDataAdapter(query, BDCon)
dataadp.Fill(datatb)
Debug.Print(datatb.Rows.Count)
Conexao.Close()
Return dataadp
' dataadp.Dispose()
Catch ex As Exception
erro = ex.Message
Return Nothing
End Try
End Function
Public Function BDretornaTabelaDataAdapter(ByVal query As String, ByVal Tabela As String) As OleDb.OleDbDataAdapter
erro = ""
Try
Dim datatb As New DataTable
Dim Conexao As New OleDb.OleDbConnection(BDCon)
Dim dataadp As New OleDb.OleDbDataAdapter(query, BDCon)
dataadp.Fill(datatb, Tabela)
Conexao.Close()
Return dataadp
' dataadp.Dispose()
Catch ex As Exception
erro = ex.Message
Return Nothing
End Try
End Function
Public Function BDretornaDataTable(ByVal query As String) As DataTable
'utilizar com o DataGridView
erro = ""
Try
Dim datatb As New DataTable
Dim Conexao As New OleDb.OleDbConnection(BDCon)
Dim dataadp As New OleDb.OleDbDataAdapter(query, BDCon)
dataadp.Fill(datatb)
Conexao.Close()
Return datatb
'dataadp.Dispose()
Catch ex As Exception
erro = ex.Message
Return Nothing
End Try
End Function
''' <summary>
''' Executa uma querie que não retorna dados - tipo delete
''' </summary>
''' <param name="query"></param>
Public Sub BDExecutaComando(ByVal query As String)
erro = ""
Try
Dim Conexao As New OleDb.OleDbConnection(BDCon)
Conexao.Open()
Dim comando As New OleDbCommand(query, Conexao)
comando.ExecuteNonQuery()
Conexao.Close()
Catch ex As Exception
erro = ex.Message
End Try
End Sub
End Module